install.packages("neonDivData", dependencies = TRUE, repos = 'https://daijiang.r-universe.dev')
## Warning: dependency 'neonUtilities' is not available
## 
## The downloaded binary packages are in
##  /var/folders/cd/ctwknlm94lsdxkkl3s67mfnc0000gp/T//Rtmp1yxEeY/downloaded_packages
library(neonDivData)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
data_bird <- neonDivData::data_bird[, c("siteID", "plotID","pointID", "observation_datetime","taxon_id","taxon_name", "taxon_rank","value","unit","variable_name", "latitude", "longitude","elevation")]
DT::datatable(head(data_bird, n = 100))
str(neonDivData::data_bird)
## tibble [226,826 × 35] (S3: tbl_df/tbl/data.frame)
##  $ location_id               : chr [1:226826] "BART_025.birdGrid.brd" "BART_025.birdGrid.brd" "BART_025.birdGrid.brd" "BART_025.birdGrid.brd" ...
##  $ siteID                    : chr [1:226826] "BART" "BART" "BART" "BART" ...
##  $ plotID                    : chr [1:226826] "BART_025" "BART_025" "BART_025" "BART_025" ...
##  $ pointID                   : chr [1:226826] "C1" "C1" "C1" "C1" ...
##  $ unique_sample_id          : chr [1:226826] "BART_025.C1.2015-06-14" "BART_025.C1.2015-06-14" "BART_025.C1.2015-06-14" "BART_025.C1.2015-06-14" ...
##  $ observation_datetime      : POSIXct[1:226826], format: "2015-06-14 09:23:00" "2015-06-14 09:23:00" ...
##  $ taxon_id                  : chr [1:226826] "BCCH" "REVI" "BAWW" "BTNW" ...
##  $ taxon_name                : chr [1:226826] "Poecile atricapillus" "Vireo olivaceus" "Mniotilta varia" "Setophaga virens" ...
##  $ taxon_rank                : chr [1:226826] "species" "species" "species" "species" ...
##  $ variable_name             : chr [1:226826] "cluster size" "cluster size" "cluster size" "cluster size" ...
##  $ value                     : num [1:226826] 1 1 1 1 1 1 1 1 1 1 ...
##  $ unit                      : chr [1:226826] "count of individuals" "count of individuals" "count of individuals" "count of individuals" ...
##  $ pointCountMinute          : chr [1:226826] "1" "1" "2" "2" ...
##  $ targetTaxaPresent         : chr [1:226826] "Y" "Y" "Y" "Y" ...
##  $ nativeStatusCode          : chr [1:226826] "N" "N" "N" "N" ...
##  $ observerDistance          : chr [1:226826] "42" "9" "17" "50" ...
##  $ detectionMethod           : chr [1:226826] "singing" "singing" "singing" "singing" ...
##  $ visualConfirmation        : chr [1:226826] "No" "No" "No" "No" ...
##  $ sexOrAge                  : chr [1:226826] "Male" "Male" "Male" "Male" ...
##  $ release                   : chr [1:226826] "RELEASE-2022" "RELEASE-2022" "RELEASE-2022" "RELEASE-2022" ...
##  $ startCloudCoverPercentage : chr [1:226826] "20" "20" "20" "20" ...
##  $ endCloudCoverPercentage   : chr [1:226826] "40" "40" "40" "40" ...
##  $ startRH                   : chr [1:226826] "72" "72" "72" "72" ...
##  $ endRH                     : chr [1:226826] "56" "56" "56" "56" ...
##  $ observedHabitat           : chr [1:226826] "evergreen forest" "evergreen forest" "evergreen forest" "evergreen forest" ...
##  $ observedAirTemp           : chr [1:226826] "18" "18" "18" "18" ...
##  $ kmPerHourObservedWindSpeed: chr [1:226826] "1" "1" "1" "1" ...
##  $ samplingProtocolVersion   : chr [1:226826] "NEON.DOC.014041vG" "NEON.DOC.014041vG" "NEON.DOC.014041vG" "NEON.DOC.014041vG" ...
##  $ remarks                   : chr [1:226826] NA NA NA NA ...
##  $ clusterCode               : chr [1:226826] NA NA NA NA ...
##  $ latitude                  : num [1:226826] 44.1 44.1 44.1 44.1 44.1 ...
##  $ longitude                 : num [1:226826] -71.3 -71.3 -71.3 -71.3 -71.3 ...
##  $ elevation                 : num [1:226826] 576 576 576 576 576 ...
##  $ nlcdClass                 : chr [1:226826] "evergreenForest" "evergreenForest" "evergreenForest" "evergreenForest" ...
##  $ plotType                  : chr [1:226826] "distributed" "distributed" "distributed" "distributed" ...
table(neonDivData::data_bird$taxon_rank)
## 
##        class       family        genus      species speciesGroup    subfamily 
##         1791         1835          261       222552          139          114 
##   subspecies 
##          134
# Subsetting using tidyverse
data_bird[, c("siteID", "plotID", "pointID", "observation_datetime",
              "taxon_id", "taxon_name", "taxon_rank", 
              "latitude", "longitude", "elevation")]
#using dplyr
select(data_bird, siteID, plotID, pointID, date_time = observation_datetime,
       starts_with("taxon"),
       latitude, longitude, elevation)
select(data_bird, ends_with("name"))
select(data_bird, where(is.numeric))
select(data_bird, latitude, longitude, everything())
# filter a AND b
filter(data_bird, plotID == "BART_025", pointID == "C1")
# Filter a OR b
filter(data_bird, plotID == "BART_025" | pointID == "C1")
mutate(data_bird, new_column = value * 10)